import java.util.Stack;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 17655
 * Date: 2024-12-11
 * Time: 23:26
 */
public class test1 {
    /*
    NewCoder BM44 s
    给出一个仅包含字符'(',')','{','}','['和']',的字符串，判断给出的字符串是否是合法的括号序列
     */

    // 右括号入栈
    public boolean isValid (String s) {
        // write code heres
        Stack<Character> stack = new Stack<Character>();
        // 是左括号就将对应的右括号进栈，
        // 如果是右括号，就把栈的元素弹出来比较，一样就继续，不一样就返回false
        for(int i =0;i<s.length();i++){
            if(s.charAt(i)=='('){
                stack.push(')');
            }else if(s.charAt(i)=='['){
                stack.push(']');
            }else if(s.charAt(i)=='{'){
                stack.push('}');
            }else if(stack.isEmpty() || stack.pop()!=s.charAt(i)){
                return false;
            }
        }
        return stack.isEmpty();
    }
}
